#ifndef SEQLIST_H_INCLUDED
#define SEQLIST_H_INCLUDED

#include "DataElement.h"

/**
 * 初始化顺序表
 * @param seqList
 */
void InitSeqList(SeqList *seqList);

/**
 * 输出顺序表
 * @param seqList
 */
void PrintSeqList(SeqList seqList);

/**
 * 普通顺序查找,根据查找关键字 key 返回元素在顺序表中的位置,(从 1 开始,没找到就返回 0 )
 * @param seqList
 * @param key
 * @return
 */
int SearchSeqList(SeqList seqList, KeyType key);

/**
 * 测试顺序表查找
 */
void TestSeqSearchList();

/**
 * 普通顺序查找,根据查找关键字 key 返回元素在顺序表中的位置,(从 1 开始,没找到就返回 0 )
 * 改进: 把带查找的关键字 key 存入表头(哨兵),从后向前逐个比较,可免去查找过程中每一步都见检测是否查找完毕,加快速度
 * @param seqList
 * @param key
 * @return
 */
int SearchSeqListGuard(SeqList seqList, KeyType key);

/**
 *  二分查找
 * @param seqList 查找的顺序表
 * @param key 查找关键字
 * @return
 */
int SearchSeqListBinary(SeqList seqList, KeyType key);

#endif // SEQLIST_H_INCLUDED
